using Guru.Framework.Base;
using System;
using System.Collections.Generic;

namespace CRMG.UserManagement.Source.BO
{
    public class User : AbstractBaseBO
    {
        private int _OBJID;
        public int OBJID
        {
            set { _OBJID = value; AddChangeList("OBJID"); }
            get { return _OBJID; }
        }

        private string _FirstName;
        public string FirstName
        {
            set { _FirstName = value; AddChangeList("FirstName"); }
            get { return _FirstName; }
        }

        private string _LastName;
        public string LastName
        {
            set { _LastName = value; AddChangeList("LastName"); }
            get { return _LastName; }
        }

        private int _UserTypeId;
        public int UserTypeId
        {
            set { _UserTypeId = value; AddChangeList("UserTypeId"); }
            get { return _UserTypeId; }
        }

        private string _UserName;
        public string UserName
        {
            set { _UserName = value; AddChangeList("UserName"); }
            get { return _UserName; }
        }

        private string _Pass;
        public string Pass
        {
            set { _Pass = value; AddChangeList("Pass"); }
            get { return _Pass; }
        }

        private string _IdentityNo;
        public string IdentityNo
        {
            set { _IdentityNo = value; AddChangeList("IdentityNo"); }
            get { return _IdentityNo; }
        }

        private string _EMail;
        public string EMail
        {
            set { _EMail = value; AddChangeList("EMail"); }
            get { return _EMail; }
        }

        private string _Phone;
        public string Phone
        {
            set { _Phone = value; AddChangeList("Phone"); }
            get { return _Phone; }
        }

        private DateTime _BirthDate;
        public DateTime BirthDate
        {
            set { _BirthDate = value; AddChangeList("BirthDate"); }
            get { return _BirthDate; }
        }

        private string _Address;
        public string Address
        {
            set { _Address = value; AddChangeList("Address"); }
            get { return _Address; }
        }

        private DateTime _UserCreationDate;
        public DateTime UserCreationDate
        {
            set { _UserCreationDate = value; AddChangeList("UserCreationDate"); }
            get { return _UserCreationDate; }
        }

        private int _UpdateUserId;
        public int UpdateUserId
        {
            set { _UpdateUserId = value; AddChangeList("UpdateUserId"); }
            get { return _UpdateUserId; }
        }

        private DateTime _UpdateTime;
        public DateTime UpdateTime
        {
            set { _UpdateTime = value; AddChangeList("UpdateTime"); }
            get { return _UpdateTime; }
        }

        private int _IsActive;
        public int IsActive
        {
            set { _IsActive = value; AddChangeList("IsActive"); }
            get { return _IsActive; }
        }

        private List<string> _OperationCodes = new List<string>();
        public List<string> OperationCodes
        {
            get { return _OperationCodes; }
            set { _OperationCodes = value; }
        }

        public override string GetTable()
        {
            return "Users";
        }
        public override string GetIdColumn()
        {
            return "OBJID";
        }
    }
}
